class Solution {
public:
    int findShortestSubArray(vector<int>& nums) {
        vector<int>maxdigit;
        int num=0;
        map<int,int>mp;
        for(int i=0;i<nums.size();i++){
            if(mp.find(nums[i])==mp.end()){
                mp[nums[i]]=1;
            }
            else{mp[nums[i]]++;}
            if(mp[nums[i]]>num){
                maxdigit.clear();
                maxdigit.push_back(nums[i]);
                num=mp[nums[i]];
            }
            else if(mp[nums[i]]==num){
                maxdigit.push_back(nums[i]);
            }
        }
        int minans=0x3f3f3f3f;
        for(int i=0;i<maxdigit.size();i++){
            int l=0,r=nums.size()-1;
            while(nums[l]!=maxdigit[i]){l++;}
            while(nums[r]!=maxdigit[i]){r--;}
            minans=min(minans,r-l+1);
        }
        return minans;
    }
};